using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

public class Lesson2 : MonoBehaviour
{
    Keyboard keyboard;
    // Start is called before the first frame update
    void Start()
    {
        #region 知识点一：获取当前键盘设备（需要引用命名空间）
        //新输入系统 提供了对应的输入设备类 帮助我们对某一种设备输入进行检测
        keyboard = Keyboard.current;
        #endregion

        #region 知识点三：通过事件监听按键按下
        //通过给keyboard对象中的文本输入事件添加委托函数
        //便可以获得每次输入的内容
        keyboard.onTextInput += TextInput;
        // keyboard.onTextInput -= TextInput;
        #endregion
    }

    private void TextInput(char c)
    {
        Debug.LogFormat("键盘输入 val:{0}", c);
    }

    // Update is called once per frame
    void Update()
    {
        #region 知识点二：单个按键 按下抬起长按
        //首先得到某一个按键 通过键盘类对象 点出 各种按键 来获取
        //按下
        if (keyboard.enterKey.wasPressedThisFrame)
        {
            Debug.LogFormat("回车 按下...");
        }
        //抬起
        if (keyboard.enterKey.wasReleasedThisFrame)
        {
            Debug.LogFormat("回车 抬起...");
        }
        //长按
        if (keyboard.enterKey.isPressed)
        {
            Debug.LogFormat("回车 长按...");
        }
        #endregion

        #region 知识点四：任意键按下监听
        //可以处理 任意键 按下 抬起 长按 相关的逻辑
        //注意：只能知道任意键被按下，无法获取按的哪一个键
        if (Keyboard.current.anyKey.wasPressedThisFrame)
        {
            Debug.LogFormat("anyKey 按下...");
        }
        if (Keyboard.current.anyKey.wasReleasedThisFrame)
        {
            Debug.LogFormat("anyKey 抬起...");
        }
        if (Keyboard.current.anyKey.isPressed)
        {
            Debug.LogFormat("anyKey 长按...");
        }
        #endregion
    }
}
